package com.yupi.yuoj.model.dto.contest;

import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 创建竞赛请求
 */
@Data
public class ContestAddRequest implements Serializable {

    /**
     * 竞赛标题
     */
    private String title;

    /**
     * 竞赛描述
     */
    private String description;

    /**
     * 竞赛类型（0 - 公开, 1 - 密码保护, 2 - 私有）
     */
    private Integer contestType;

    /**
     * 竞赛密码（如果是密码保护类型）
     */
    private String password;

    /**
     * 开始时间
     */
    private Date startTime;

    /**
     * 竞赛时长（分钟）
     */
    private Integer duration;

    /**
     * 是否可见排名（0 - 不可见, 1 - 可见）
     */
    private Integer visibleRank;

    /**
     * 罚时（分钟）
     */
    private Integer penalty;

    /**
     * 题目ID列表
     */
    private List<Long> questionIds;

    private static final long serialVersionUID = 1L;
    
    // 手动添加getter/setter方法以解决编译问题
    public String getTitle() {
        return title;
    }
    
    public void setTitle(String title) {
        this.title = title;
    }
    
    public String getDescription() {
        return description;
    }
    
    public void setDescription(String description) {
        this.description = description;
    }
    
    public Integer getContestType() {
        return contestType;
    }
    
    public void setContestType(Integer contestType) {
        this.contestType = contestType;
    }
    
    public String getPassword() {
        return password;
    }
    
    public void setPassword(String password) {
        this.password = password;
    }
    
    public Date getStartTime() {
        return startTime;
    }
    
    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }
    
    public Integer getDuration() {
        return duration;
    }
    
    public void setDuration(Integer duration) {
        this.duration = duration;
    }
    
    public Integer getVisibleRank() {
        return visibleRank;
    }
    
    public void setVisibleRank(Integer visibleRank) {
        this.visibleRank = visibleRank;
    }
    
    public Integer getPenalty() {
        return penalty;
    }
    
    public void setPenalty(Integer penalty) {
        this.penalty = penalty;
    }
    
    public List<Long> getQuestionIds() {
        return questionIds;
    }
    
    public void setQuestionIds(List<Long> questionIds) {
        this.questionIds = questionIds;
    }
}